home *** CD-ROM | disk | FTP | other *** search
/ Windows Expert / Windows Expert.iso / utility / mewin10.zip / README < prev   
Text File  |  1992-04-17  |  16KB  |  371 lines

  1. MicroEMACS 3.11c for Windows, update 1.0            by Pierre Perret
  2. ========================================          April 17, 1992         
  3.  
  4. Files in this archive:
  5. ---------------------
  6.  
  7. README        this file
  8. MEWIN.EXE    MS-Windows executable
  9. EMACS.RC    sample start-up macro tailored for the Windows environment
  10. MDI.CMD        macro file for those who like to have one file per screen
  11. CUA.CMD        macro file for CUA-like mouse and keyboard behaviour
  12. EMACS.INI    EMACS-related information to be put into WIN.INI
  13. DOSBOX.PIF    |
  14. DOSEXEC.PIF    | PIF files used when launching DOS sessions from EMACS
  15.  
  16. INSTALLATION
  17. ------------
  18.  
  19. Put the EMACS.RC, MDI.CMD and CUA.CMD files in the same directory as
  20. MEWIN.EXE (this directory does not need to be mentionned in the DOS
  21. PATH). Copy the contents of EMACS.INI into your WIN.INI file and edit
  22. the DosBox and DosExec entries to reflect the location of the DOSBOX.PIF
  23. and DOSEXEC.PIF files (for instance, the directory where MEWIN.EXE
  24. resides). Once its contents have been copied into WIN.INI, EMACS.INI is
  25. no longer needed.
  26.  
  27. EMACS.RC and MDI.CMD are setup for displays that can accomodate a text
  28. width of at least 100 character. If you have a pure VGA or lower
  29. resolution display, you should remove the lines:
  30.     100  change-screen-width
  31. and
  32.     80  change-screen-width
  33. in, respectively, EMACS.RC and MDI.CMD. For a consistent and wide
  34. display area, you may also want to add the line:
  35.     InitialSize=optimized
  36. into WIN.INI, within the [MicroEMACS] section.
  37.  
  38. Other files:
  39. -----------
  40.  
  41. MicroEMACS normally comes with documentation and a bunch of scripts (aka
  42. macros or "command files"). They are not supplied in this archive, but
  43. are available separately. The files for release 3.11 are the ones you
  44. need and they are available from a number of sources, including:
  45.  
  46. - COMPUSERVE, forum IBMAPP, library 1 for the executables (UE311I.EXE),
  47.   official 3.11 release readme file (UE311.TXT), reference manual
  48.   (UE311D.ZIP) and  macros (UE311M.ZIP). forum IBMPRO, library 3 for the
  49.   official 3.11 sources (UE311C.ZIP, UE311H.ZIP and UE311K.ZIP).
  50.  
  51. - BIX, in the editors conference's listing area.
  52.  
  53. - various Internet hosts among which wuarchive and simtel20.
  54.  
  55. - The Programmer's Room BBS (see below)
  56.  
  57. The sources for this port are available in a separate archive. They are
  58. in C language and geared to be compiled by Borland C++ 3.0 or Turbo C++
  59. 3.0 (Windows-hosted compiler).
  60.  
  61. An exhaustive on-line documentation (in Winhelp format) is in the works
  62. and will be distributed in a separate archive as soon as it is complete.
  63.  
  64. HOW TO REPORT PROBLEMS OR SUBMIT SUGGESTIONS
  65. --------------------------------------------
  66.  
  67. The prefered way to reach me to discuss about this program is through
  68. CompuServe, in the Shareware/Freeware section of the WINADV forum or on
  69. BIX in the editors conference, in the emacs topic. My CompuServe ID is
  70. 73757,2337 and my BIX Id is pierre_perret. You can also send Email
  71. directly to those accounts, but forum/conference transactions have the
  72. advantage of being viewable by others.
  73.  
  74. If you do not use CompuServe or BIX, but have Internet access, you can
  75. exchange Internet mail with me by sending it to pap@myths.az05.bull.com
  76.  
  77. Other channels include:
  78.  
  79. - Phone:
  80.     (602) 862-5448 at my office (9am - 5pm)
  81.     (Note: hours given for Mountain Standard Time, no daylight savings)
  82.  
  83. - US mail:  Pierre Perret
  84.         4326 W Michigan Avenue
  85.         Glendale Az 85308
  86.  
  87. - The Programmer's Room BBS at (317) 742-5533 (300/1200/2400 and 9600
  88.   [Hayes V series only], no parity, 8 databits, no stop bits). However,
  89.   since this is a long distance call for me, I do not check-in very often.
  90.   I am registered under my real name (Pierre Perret).
  91.  
  92. Please note that I am the author of this Windows port, not the author of
  93. MicroEMACS itself. Problems that also occur with the standard 3.11
  94. editor should be reported to Dan Lawrence on the Programmer's Room BBS.
  95.  
  96. USAGE NOTES
  97. -----------
  98.  
  99. In doing this port, I have tried to preserve as much as possible the
  100. MicroEMACS way of doing things, for the sake of minimizing changes in
  101. the editor core...
  102.  
  103. VOCABULARY:
  104.  
  105. MicroEMACS calls "screens" what really should be called "MDI windows"
  106. and calls "windows" what should be called "panes". Changing those
  107. definitions in the Windows implementation would impact all the commands
  108. that deal with "screens" and "windows" and would therefore break most
  109. macros.
  110.  
  111. INPUT TO THE MESSAGE LINE:
  112.  
  113. Depending on the particular command that requested such input,
  114. MicroEMACS implements varying character handling methods that are
  115. definitely not CUA-compliant.
  116.  
  117. TEXT SELECTION:
  118.  
  119. Contrary to CUA standards, selections are not highlited (this is
  120. tough to implement since the core editor does not establish a clear
  121. relation between the "region" and the position of the concerned
  122. characters on the screen).
  123.  
  124. MOUSE HANDLING:
  125.  
  126. Due to its mainframe heritage, and also it's capability to redefine
  127. mouse behavior by macros, Emacs' mouse handling differs significantly
  128. from that of other Windows applications (CUA-compliant ones):
  129.  
  130. - Emacs's notion of a double click is completely unrelated to the time
  131. elapsed between two clicks. A double click is considered such if the
  132. caret is at the same screen coordinates on both clicks.
  133.  
  134. - dragging with the left button pressed does not select text, it drags
  135. the text across the viewport, horizontally or vertically.
  136.  
  137. - dragging with the right button pressed selects the text and:
  138.  1) makes it a "region"
  139.  2) copies it to the "kill buffer"
  140.  3) if a double click occurs at the end of the drag, the selected region
  141.     is deleted
  142.  
  143. - clicking with the right button (without dragging) inserts the contents
  144. of the kill buffer at that location.
  145.  
  146. The CUA.CMD file included with this package, loaded by the included
  147. EMACS.RC, contains macros that modify the standard MicroEMACS mouse
  148. bindings to provide a CUA-like interface.
  149.  
  150. CURRENT WORKING DIRECTORY:
  151.  
  152. The current working directory and selected drive is always set to the
  153. file path associated with the current "window". If that path is not an
  154. absolute one, it is dependant upon the previously visited directory
  155. paths (including the directory field that appeared in a file dialog box,
  156. even if the operation was cancelled).
  157.  
  158. EXTENDED CHARACTERS:
  159.  
  160. The Windows environment is quite unlike DOS when translating keypresses
  161. into characters. This port of MicroEMACS to Windows tries to give a mostly
  162. DOS-like feel to the user. However, there is one area where it seems
  163. hopeless: extended characters. These are the characters that do not
  164. correspond to an actual key on the keyboard. Under DOS, they are
  165. obtained by maintaining the ALT key down, while "dialing" the decimal
  166. value of the desired character on the numeric keypad, using the "IBM-PC
  167. Extended Character Set" table.
  168.  
  169. Unfortunately, Windows is very much slanted towards ANSI and, as a
  170. result, the keyboard driver wants to deliver ASCII character codes not
  171. from the despised IBM-PC set, but rather from the ANSI table. For
  172. instance, the code for the Mu (or Micro) greek sign is 181 in ANSI and
  173. 230 in IBM-PCese.
  174.  
  175. "Well, who cares ?" you say, "the table comes into play only when the
  176. characters are actually displayed on the screen, so the font's character
  177. set is what matters".
  178.  
  179. NOT! 
  180. The keyboard driver designers must have concluded that users had rote
  181. knowledge of the IBM-PC table and could not possibly be asked to look
  182. upon the wonderful but mysterious ANSI table. So, they went out of their
  183. way to provide a translation! What it boils down to is this: if you dial
  184. say, 230 on the numeric keypad while holding ALT down, a Windows
  185. application will not receive code 230, but code 181, which is the
  186. equivalent character in the ANSI table! Worse, the mapping is full of
  187. holes, so the following dialing codes: 158, 159, 176 to 224, 226, 228,
  188. 229, 231 to 240, 242 to 247, 249 to 252 and 255, are all given back to
  189. the hapless application as code 95 (underscore)!
  190.  
  191. The net result:
  192.  
  193. If you display your text in an ANSI font and use the IBM-PC table to
  194. dial the extended character codes, you will see the expected rune appear
  195. on the display (unless you happen to dial into one of the holes
  196. mentionned above in which case an underscore is all you will get). Of
  197. course, the code saved in the file will not exactly be what you dialed!
  198. On the other hand, if you are using the OEM font (which uses the IBM-PC
  199. character set), or if you read the resulting file under a DOS editor, it
  200. may look a bit weird.
  201.  
  202. FEATURES OF THIS WINDOWS PORT (over what is standard in MicroEMACS 3.11c)
  203. -----------------------------
  204.  
  205. MENUS:
  206.  
  207. I have put most of the functions available in MicroEMACS into a set of
  208. menus (some with nested popups). There are a few MicroEMACS functions
  209. that would not make much sense in a menu and have therefore been
  210. excluded. A few menu items have no equivalent function in the MicroEMACS
  211. macro language.
  212. In addition to the standard Windows convention of appending an ellipsis
  213. to menus items that beget a dialog box, I have used the following: a
  214. colon is appended to menus items that require a user response on the
  215. message line and an equal sign is inserted in front of items that
  216. require an argument to have been entered (by META + digits).
  217.  
  218. Key bindings are displayed in the menus, using the Windows format for
  219. key descriptions instead of the MicroEMACS format (which, for some
  220. function keys, can be quite cryptic).
  221.  
  222. Some menu items may appear grayed if the context is such that they are
  223. unuseable.
  224.  
  225. For those who recompile this program with source-level debugging, there
  226. is an extra menu item "Break to debugger" that can be added by a small
  227. change at the end of mswmenu.h. This menu item can be useful to give
  228. control to the debugger when, for instance, you need to set breakpoints
  229. before trying some misbehaving feature. In the released executable, this
  230. menu item has been disabled.
  231.  
  232. ALT KEY HANDLING:
  233.  
  234. In Windows applications, the Alt key can be used in combination with a
  235. letter or digit to pull down a menu from the menu bar. In MicroEMACS,
  236. bindings have the priority over those menu bar accelerators. Thus, if
  237. there is a conflict between a menu-bar accelerator and an emacs binding,
  238. the accelerator looses. On the other hand, trying to create a new
  239. binding interactively by simply invoking bind-to-key or macro-to-key
  240. will not be possible if the desired binding matches a menu-bar
  241. accelerator.
  242. Note that a menu can still be invoked from the keyboard, even when the
  243. accelerator conflict with a binding, by pressing AND releasing the Alt
  244. key and THEN hitting the accelerator character.
  245.  
  246. "NOT QUIESCENT" STATE:
  247.  
  248. If a macro is executing, most menu selections cannot be processed (the
  249. editor is said to be in the "not quiescent" state) because a lot of
  250. MicroEMACS functions are not quite reentrant. This is reflected by a
  251. change of the mouse cursor from a pointing finger to a color-inverting
  252. arrow.
  253.  
  254. $SRES VARIABLE:
  255.  
  256. To allow Windows-aware macros, the $sres is set to "MSWIN" and cannot
  257. be modified (trying to set it has no effect, but it returns no error).
  258.  
  259. NEW MICROEMACS FUNCTIONS:
  260.  
  261. tile-screens
  262. cascade-screens
  263. minimize-screen
  264. maximize-screen
  265.  
  266.     These functions allow shuffling of screens (aka MDI windows) from
  267.     EMACS macros.
  268.  
  269. rename-screen
  270.  
  271.     This one allows you to change the name of the current screen (that
  272.     type of command is not of much use under the other versions of EMACS
  273.     since screen names are rarely displayed).
  274.  
  275. clip-region
  276. cut-region
  277. insert-clip
  278.  
  279.     These supplement copy-region, kill-region and yank, but instead of
  280.     addressing the kill buffer, they address the Windows clipboard.
  281.  
  282. bind-to-menu
  283. macro-to-menu
  284. unbind-menu
  285.  
  286.     These functions allow dynamic modification of the menus. An example
  287.     of their use appears in the EMACS.RC sample startup file.
  288.  
  289. help-engine
  290.  
  291.     This allows a macro to invoke the Windows Help engine. Look for
  292.     a couple of examples in the supplied EMACS.RC.
  293.  
  294. LONG OPERATIONS:
  295.  
  296. When performing long operations (macros with loops, searches, file
  297. IOs...), this program lets other Windows applications have a piece of
  298. the CPU pie by yielding at regular intervals (see the TimeSlice profile
  299. value in EMACS.INI). During these periods, a few menu options are still
  300. available, among which quitting (Exit in File menu or Close in system
  301. menu). Note that if the user attempts to quit while a file is being
  302. written out, a confirmation is required (the same happens if there are
  303. changed buffers).
  304.  
  305. In Windows, yielding is only possible if the application has exhausted
  306. its input message queue. As a consequence, EMACS cannot ignore typeahead
  307. while attempting to yield. One particular side effect of this is that if
  308. you do a ^X^F (find-file) followed by <name_of_file><RC> while a lengthy
  309. operation is going on, EMACS absorbs those keystrokes and has to refeed
  310. them into the "Find file" dialog box when it eventually pops up. I have
  311. implemented a mechanism for dealing with this, but it handles only
  312. simple ASCII characters and just throws away any other keystroke (for
  313. instance, arrow keys are not forwarded to the dialog box).
  314.  
  315. FONTS:
  316.  
  317. The Font item in the Screen menu brings up a dialog box that allows the
  318. user to select a fixed font to be used. This font description can be
  319. saved in WIN.INI so that subsequent invokations of MicroEMACS use it at
  320. startup.
  321.  
  322. LOCAL AND GLOBAL MODES:
  323.  
  324. The Mode and Global mode items of the File menu bring up dialog boxes
  325. that offer a user-friendly way of setting the CMODE, VIEW, EXACT, MAGIC,
  326. etc... modes.
  327.  
  328. FILE DIALOG BOX:
  329.  
  330. Instead of using a message line interface with attempted completion of
  331. file names, this program pops up a dialog box whenever a filename has to
  332. be supplied by the user. This is an attempt at CUA compliance. It also
  333. has the side effect of supplying the editor with fully qualified
  334. pathnames. The handy filename completion feature has been implemented as
  335. well, with the addition of auto-scrolling of the filename list.
  336.  
  337. HELP SYSTEM:
  338.  
  339. The first four items in the Help menu are intended to load the MEWIN.HLP
  340. help file into the Windows help engine. Building this file has been a
  341. major undertaking that, I must admit, I had underestimated (never done
  342. any hypertext documents before). At this time, it is still incomplete
  343. and a large number of the MicroEMACS command descriptions are missing.
  344. Hopefully, I will manage to release it within a month or so...
  345.  
  346. ------------------------------------------------------------------------
  347.  
  348. Disclaimer and copyright:
  349. ------------------------
  350.  
  351. This program is supplied without waranties of any kind. Neither I
  352. (Pierre Perret), nor the author and copyright owner of MicroEMACS
  353. (Daniel M. Lawrence), can be held responsible or liable for any damage
  354. caused by the use of this program.
  355.  
  356. In short: USE AT YOUR OWN RISK.
  357.  
  358.     (C)Copyright 1988, 1989, 1990, 1991, 1992 by Daniel M. Lawrence
  359.     MicroEMACS 3.11 can be copied and distributed freely for any
  360.     non-commercial purposes. Commercial users may use MicroEMACS
  361.     3.11 inhouse. Shareware distributors may redistribute
  362.     MicroEMACS 3.11 for media costs only. MicroEMACS 3.11 can only
  363.     be incorporated into commercial software or resold with the
  364.     permission of the current author:
  365.  
  366.         Daniel M. Lawrence
  367.         617 New York St
  368.         Lafayette, IN 47901
  369.  
  370. ------------------------------------------------------------------------
  371.